
#ifndef ACACCOUNTDAO_MOCK_H
#define ACACCOUNTDAO_MOCK_H

#include <stdint.h>
#include <string>
#include "app_platform/cntl_info.h"

#include "erp/acaccount/ddo/acitemsddo_acaccount.h"	
#include <set>	
#include <map>	
#include <vector>	
#include "erp/acaccount/ddo/bankaccountddo_acaccount.h"	
#include "erp/acaccount/ddo/acitemsfilterddo_acaccount.h"	
#include "erp/acaccount/ddo/bankaccountfilterddo_acaccount.h"	
#include "intf_acaccountdao.h"


namespace erp
{
namespace acaccount
{
namespace dao
{

	class CACAccountDaoMock : public IACAccountDao{
	public:
	    virtual uint32_t AddAndUpdateACItems(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::acaccount::ddo::CACItemsDdo& aCItemsDdo,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& aCItemsSysNo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			aCItemsSysNo = m_aCItemsSysNo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t AddAndUpdateBankAccount(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::acaccount::ddo::CBankAccountDdo& bankAccount,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& bankAccountSysNo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			bankAccountSysNo = m_bankAccountSysNo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t DeleteACItems(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t ACItemsSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t DeleteBankAccount(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t bankAccountSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetACItemsByFilter(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::acaccount::ddo::CACItemsFilterDdo& bankAccountFilter,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<erp::acaccount::ddo::CACItemsDdo >& aCItems,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			aCItems = m_aCItems;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetACItemsBySysNos(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const std::set<uint64_t >& sysNoList,
				const std::string& inReserve,
				std::string& errmsg,
				std::map<uint64_t,erp::acaccount::ddo::CACItemsDdo >& aACItems,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			aACItems = m_aACItems;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetBankAccountByFilter(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const erp::acaccount::ddo::CBankAccountFilterDdo& bankAccountFilter,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<erp::acaccount::ddo::CBankAccountDdo >& bankAccount,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			bankAccount = m_bankAccount;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetBankAccountBySysNos(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const std::set<uint64_t >& sysNoList,
				const std::string& inReserve,
				std::string& errmsg,
				std::map<uint64_t,erp::acaccount::ddo::CBankAccountDdo >& bankAccount,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			bankAccount = m_bankAccount;
			outReserve = m_outReserve;
			return 0;
	    }		
	
   public:
			std::string m_errmsg;
			uint64_t m_aCItemsSysNo;
			std::string m_outReserve;
			uint64_t m_bankAccountSysNo;
			std::vector<erp::acaccount::ddo::ACItemsDdo > m_aCItems;
			std::map<uint64_t,erp::acaccount::ddo::ACItemsDdo > m_aACItems;
			std::vector<erp::acaccount::ddo::BankAccountDdo > m_bankAccount;
			std::map<uint64_t,erp::acaccount::ddo::BankAccountDdo > m_bankAccount;
	};
	
}
}
}

#endif /* ACACCOUNTDAO_MOCK_H */

